package com.shitou.springai1.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shitou.springai1.admin.entity.dto.FileDto;
import com.shitou.springai1.admin.entity.vo.FileVo;
import org.springframework.ai.document.Document;

import java.util.List;
import java.util.Map;

/**
 * 文件服务接口
 */
public interface FileService extends IService<FileDto> {
    /**
     * 保存文件
     * @param fileDto 文件实体
     * @return 是否保存成功
     */
    boolean saveFile(FileDto fileDto);

    /**
     * 获取文件列表
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param keyword 搜索关键词
     * @return 文件列表
     */
    List<Map<String, Object>> getFiles(int pageNum, int pageSize, String keyword);

    /**
     * 根据文件ID查询文件
     * @param fileId 文件唯一标识
     * @return 文件实体
     */
    FileDto getByFileId(String fileId);

    /**
     * 删除文件
     * @param id 文件ID
     * @return 是否删除成功
     */
    boolean deleteFile(Long id);

    /**
     * 处理文件分片并存储到向量数据库
     * @param fileDto 文件实体
     * @param fileContent 文件内容
     * @return 分片后的文档列表
     */
    List<Document> processAndStoreFileToVectorStore(FileDto fileDto, String fileContent);
}
